package com.example.myapplication.ui.components.video

import android.content.Context
import android.os.Bundle
import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
import androidx.compose.ui.platform.LocalContext
import com.tencent.rtmp.ITXVodPlayListener
import com.tencent.rtmp.TXLiveConstants
import com.tencent.rtmp.TXVodPlayer

class VodController(context: Context) {

    val playerValue = PlayerValue()

    // 腾讯播放器
    val vodPlayer = TXVodPlayer(context).apply {
        // 监听播放进度
        setVodListener(object : ITXVodPlayListener{
            override fun onPlayEvent(player: TXVodPlayer?, event: Int, param: Bundle?) {
                when(event) {
                    // 视频播放开始（若有转菊花效果，此时将停止）。
                    TXLiveConstants.PLAY_EVT_PLAY_BEGIN -> {
                        // 获取视频总时长
                        playerValue.duration = param?.getInt(TXLiveConstants.EVT_PLAY_DURATION)?.toLong() ?: 0L
                        // 获取播放进度
                        playerValue.curentPosition = param?.getInt(TXLiveConstants.EVT_PLAY_PROGRESS)?.toLong() ?: 0L
                    }
                }
            }

            override fun onNetStatus(player: TXVodPlayer?, pram: Bundle?) {
                TODO("Not yet implemented")
            }
        })
    }
    /**
     * 开始播放
     */
    fun startPlay(url: String) {
        vodPlayer.startPlay(url)
    }

    /**
     * 停止播放
     */
    fun stopPlay() {
        // isNeedClearLastImg 是否清除最后一帧画面
        vodPlayer.stopPlay(true)
    }

    /**
     * 暂停播放
     */
    fun pause() {
        vodPlayer.pause()
    }

    /**
     * 设置播放进度
     */
    fun seekTo(millSeconds: Long) {
        vodPlayer.seek((millSeconds / 1000).toInt())
    }
}

@Composable
fun rememberVodController(content:Context = LocalContext.current) = remember {
        VodController(content)
    }